package com.bdqn.t382.test;

import java.lang.reflect.Field;

public class AccessPersonFields {
    public static void main(String[] args) {
        try {
         // 通过反射加载一个 Person 实例
         Class cls = Class.forName("com.bdqn.t382.pojo.Person");
         Object person = cls.newInstance();
         // 获取 private String name 属性
         Field name = cls.getDeclaredField("name");
          // name 属性为 private，这里已超出其访问范围，不能直接访问
          // 通过 setAccessable 方法，设定为可以访问
          name.setAccessible(true);
          // 先取值看一下
          System.out.println("赋值前的 name：" + name.get(person));
          // 为 name 属性赋值
          name.set(person, "New Person");
          // 展示一下赋值效果
          System.out.println("赋值后的 name：" + name.get(person));
          } catch (Exception e) {
          e.printStackTrace();
          }
         }
}
